#include <stdio.h>
#include "LinkedStack.h"

void Dec_to_Oct(int num)
{
	//创建链式栈
    struct LinkedStack*s = Create_Stack();
    if(s == NULL)
        return ;
    //操作
    while(num)
    {
        Push(s,num%8);
        num /= 8;
    }
    //输出
    while(!Is_Empty(s))
    {
        SElemType d;
        Pop(s, &d);
        printf("%d", d);
    }
    printf("\n");
    //销毁链式栈
    Destroy_Stack(s);
}
int main()
{
    // struct LinkedStack*s = Create_Stack();
    // for(int i = 0; i < 10; i++)
    // {
    //     bool ok = Push(s, i);// 0 1 2 3 4 5 6 7 8 9
    //     printf("%d\n", ok);
    // }
    // printf("len = %d\n", Get_Length(s));

    // SElemType d;
    // bool ok = Get_Top(s,&d);
    // printf("ok = %d, d = %d\n", ok, d);// 1 9

    // Pop(s, NULL);
    // Pop(s, NULL);
    // Pop(s, NULL);// 0 1 2 3 4 5 6 
    // ok = Get_Top(s,&d);
    // printf("ok = %d, d = %d\n", ok, d);// 1 6
    // Push(s, 8);//0 1 2 3 4 5 6 8
    // printf("len = %d\n", Get_Length(s));//8
    // while(!Is_Empty(s))
    // {
    //     ok = Pop(s, &d);
    //     printf("ok = %d, d = %d\n", ok, d);// 8 6 5 4 3 2 1 0
    // }
    // printf("len = %d\n", Get_Length(s));// 0
    // Push(s, 1);
    // Push(s, 2);
    // Push(s, 3);
    // Clear_Stack(s);
    // printf("len = %d\n", Get_Length(s));// 0
    // Destroy_Stack(s);
    int num;
    scanf("%d", &num);
    Dec_to_Oct(num);
   
}